perm filename TENGWR.DON[UP,DOC] blob
sn#211641 filedate 1976-04-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 The TENGWAR Type Fonts
C00005 00003 The Character Set
C00007 00004 Use of the Fonts
C00009 00005 The TENGWR Program
C00014 00006 Using Tengwar from POX
C00020 ENDMK
C⊗;
The TENGWAR Type Fonts
Introduction
============
In case you're reading this to find out what on earth `Tengwar' is,
it's the Elvish script as described in J. R. R. Tolkien's trilogy, "The
Lord of the Rings". It being primarily a phonetic alphabet, it may be used
to represent most Indo-European languages. (It does not do so well with
the clicks and intonations used by various African and Oriental languages.)
Three type fonts are available at SAIL for producing Tengwar on the
XGP. The smallest is TNG40 and comes from Bob Currier at ISI. It includes
all the characters given in Appendix E of the trilogy, and is perhaps a bit
closer to the `handwritten' form than are the other two fonts. On the
other hand, it has a bit more trouble fitting in some of the tehtar. (For
the uninitiated: `Tehtar' are sort of like accent marks, and are used to
indicate vowels. They usually go above the character (`tengwa') which the
vowel precedes. This is the last time you'll get an explanation like this.
Go read the book.) The medium- and large-sized fonts, TNG75 and TNG112,
were designed by DON at SAIL, and do not include characters whose phonetic
meanings were unspecified (specifically, numbers 19, 24, 26, 28, 34, 35,
and 36). They do include multiple versions of the `o' and `u' tehtar; the
wider versions may be used with the wider tengwar.
Only rudimentary punctuation is included in the fonts, namely
period, comma, colon, semi-colon, exclamation point, hyphen, and (in the
SAIL fonts only) question mark. The SAIL fonts also include the
abbreviations for `of', `the', and `of the' as used in the sample given in
the books. Digits are not available.
The Character Set
=================
The ASCII-Tengwar correspondence used in the fonts is pretty much
the same as in the English sample in the trilogy. Upper-case letters are
used for the characters: BCDFGHJKLMNPRSTVWYZ. Lower-case is used for
related characters: d=dh as in `them', t=th as in `think', c=ch, s=sh, z=zh
(`vision'), g=gh (German `ach'), j=ng, r=trilled r (as used in French).
The basic tehtar are also lower-case letters: aeiou. The nasal bar is `n',
the double-dot for following y is `y', the double or `long' bar is `≡', and
the trailing s (as in `box' or `klutz') is `~'. The inverted S and Z are ∂
and ¬ respectively. Whatever punctuation is available is standard. The
vowel-carrier symbols are `|' (short) and `∞' (long).
This covers all the characters common to all 3 fonts. The
remaining symbols tend to be stuffed away more or less at random. In
particular, TNG75 and TNG112 use `∀', `∃', and `⊗' for the abbreviations
for `of', `the', and `of the', and also use OU⊂⊃<> for the other forms of o
and u tehtar.
Use of the Fonts
================
The main problem in using the Tengwar fonts arises in trying to
position the tehtar and related symbols (n, y, etc.) above each tengwa.
But all is not black. The appropriate horizontal and vertical offsets have
been worked out already for each tehta-tengwa combination. (How to get
your greedy little hands on this data will be revealed shortly.)
Of course, even with this information, it is impossible to use the
fonts directly (i.e. you can't just xspool an E-file using a Tengwar font)
and it is nearly impossible from PUB (it requires extensive use of `sneak'
and `beware'). POX is feasible with a modicum of straining, and a suitable
macro is shown on page 6 of this documentation. In fact, if you're
desperate to use PUB for this stuff, you can design macros (using `sneak'
and `beware' and a knowledge of XGP output format) which simulate the
actions of the POX macro. If, however, all you want is a message using one
Tengwar font and no other fonts, there is a program which will do it for
you, and which takes roughly phonetic English as input. It is documented
next.
The TENGWR Program
==================
The TENGWR program accepts a roughly phonetic input format and
produces a Tengwar XGP file. It also does a minimal amount of text
processing; specifically, it fills each line with as many words as will
fit, and it begins new pages automatically. It is fairly limited as to how
much control you have over the output; you cannot override its margins or
page skips, nor can you align the right margin. These and other features
may be implemented later if enough people grumble.
Input format:
Upper- and lower-case consonants are equivalent, and represent the
upper-case tengwa. Thus both `D' and `d' may be used to represent the `D'
character. To get the lower-case tengwa, follow the consonant with `h' (or
`H'). Thus `DH' gives the `d' character, and `rh' is the trilled r.
Upper-case vowels represent `long' vowel sounds.
The program will automatically recognise places where it should use
the tehtar for preceding nasal, doubled letter, trailing s at the end of a
word, etc. It also automatically decides when to use the inverted S or Z,
and when a vowel-carrier is needed. Thus, for example, the sentence:
"Frodo only wanted the simple things in life."
might be written (depending on your phonetic tastes):
"frOdO Only wanted ∃ simpl thingz in lIf."
Note the use of `∃' for `the'. This is NOT done automatically by
the program. In the above sample, the program would produce the following
sequence of characters for `frOdO': An `F', an `R', a `D' with a doubled
`o' tehta, and a long vowel carrier with an `o' tehta. For the word `Only'
it would produce a single tengwa: An `L' with a doubled `o' tehta, a nasal
bar, and a double-dot for following `y'. The program is also clever enough
to realise that the preceding nasal is `m' instead of `n' for certain
letters.
Certain special characters are also allowed. A `~' is ignored, and
may thus be used to separate characters which would otherwise be combined.
For instance, the word `adhere' might be written `ad~hEr' to prevent the
`dh' from being combined into a single tengwa. An `α' at the beginning of
a word forces the word to be at the beginning of a new line; n+1 `α's will
cause n blank lines. (Blank lines and multiple spaces in the input file
are ignored.) To force multiple spaces ahead of a word, particularly for
indentation after an `α', precede the word with `β's. The `β's must follow
the `α's, if any. For instance, to leave a blank line and then start a new
paragraph with the word `frog', indented 5 spaces, you'd use: ααβββββfrog.
As for the mechanics of using the TENGWR program, it asks first for
the size of the font desired (small, medium, or large), then for the input
file name. The default suffix is .TNG. The output is to a file by the
same name but with suffix .XGP in the local directory. Upon exit, the line
editor is set up with the XSPOOL command.
Using Tengwar from POX
======================
In order to use the Tengwar fonts effectively from POX, you first
have to know the horizontal and vertical offsets for positioning any given
tehta above (or below) any given tengwa. To get this information, run the
TENGWR program, specify the size font you're interested in, and then give
it a null file name. It will produce a file called SAMPLE.XGP containing
all the information you need, plus some other esoteric tidbits, in a mystic
format.
Ignoring the esoteric tidbits, you are left with 4 columns of
information on the right-hand side. Tucked away in these 4 columns are,
for each tengwa, 12 pieces of data. Each datum is printed as some
identifying symbol (such as `a' for the position of the `a' tehta) followed
by a right-arrow (→) and a number, possibly followed by a down-arrow (↓)
and another number. These two numbers represent the required horizontal
and vertical (downward) offsets required.
For each tengwa, the information is displayed thusly:
a (α) β ≡
e o1 no y
i o2 noo s
with the following interpretations:
a position for the `a' tehta
e position for the `e' tehta
i position for the `i' tehta
(α) position for the `o' and `u' tehtar (α is explained below)
o1 position for first tehta if `o' or `u' is doubled (long vowel)
o2 RELATIVE position from o1 for second tehta
β position for the nasal bar (β is explained below)
no position for nasal bar if `o' or `u' tehta is present
noo position for nasal if doubled `o' or `u' is present
≡ position for double (`long' consonant) bar (character `≡' in font)
y position for following `y' mark (character `y' in font)
s position for trailing `s' curl (character `~' in font)
The values shown may be garbage for inapplicable cases, such as the nasal
bar on vowel carriers, or trailing `s' on the `S' tengwa.
In the above description, `α' is some digit from 0 through 3, and
designates which characters to use for the `o' and `u' tehtar, as detailed
in the following table:
α Single (short) vowel First of long vowel (o1) Second (o1+o2)
0 `⊂' or `⊃' `o' or `u' `o' or `u'
1 `O' or `U' `⊂' or `⊃' `⊂' or `⊃'
2 `o' or `u' `o' or `u' `o' or `u'
3 `o' or `u' `o' or `u' `<' or `>'
The `β' indicates the appropriate nasal sound corresponding to the tengwa,
either N or M. If `β' is neither of these (typically it may be ∞, `, or n)
then there is no nasal corresponding to that symbol.
Once you have all this marvelous information, here's a POX macro
that makes use of it. It's called `tt' (for `tehtar'), and it assumes that
`\' is the POX escape character.
\8tt(char,left,down)[\←.\+=⊗left⊗;\→.\↓=⊗down⊗;⊗char⊗\⊗⊗\-=⊗left⊗;\→.]
Once you've defined the above macro, you can use it to position each tehta
relative to the attached tengwa, prior to printing the tengwa itself. (It
should be noted that all of the tehtar and other special marks have a
character width of zero in the fonts; the above macro doesn't need this,
but you might find it handy if you want to design more powerful macros.) As
a sample, here is how you would print "this is a small sample of tengwar"
using TNG112.
d\!tt(i,20);∂ \!tt(i,20,-26);¬ \!tt(a,4);∞ SM\!tt(a,41);\!tt(≡,32,24);L
S\!tt(a,16)\!tt(n,19)PL \!tt(⊂,11)F T\!tt(e,24)\!tt(n,23)GW\!tt(a,16)R
Notice that you have to remember yourself to use the inverted S and Z
symbols (∂ and ¬). Your memory will be jogged in this regard by the
garbagy values given for positioning tehtar above the un-inverted forms.